package com.example.demo.sensitive.dto.response;

import lombok.Data;

import java.time.LocalDateTime;

/**
 * @ClassName DatabaseConfigResponse
 * @Description 数据库配置响应对象
 * @Author System
 * @Date 2025/9/19
 **/
@Data
public class DatabaseConfigResponse {

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 配置名称
     */
    private String name;

    /**
     * 数据库类型
     */
    private String dbType;

    /**
     * 数据库主机地址
     */
    private String host;

    /**
     * 数据库端口
     */
    private Integer port;

    /**
     * 数据库名称
     */
    private String databaseName;

    /**
     * 用户名
     */
    private String username;

    /**
     * 连接参数
     */
    private String connectionParams;

    /**
     * 是否启用
     */
    private Integer status;

    /**
     * 状态描述
     */
    private String statusDesc;

    /**
     * 是否只读连接
     */
    private Integer isReadOnly;

    /**
     * 最大连接数
     */
    private Integer maxConnections;

    /**
     * 连接超时时间(秒)
     */
    private Integer connectTimeout;

    /**
     * 查询超时时间(秒)
     */
    private Integer queryTimeout;

    /**
     * 描述说明
     */
    private String description;

    /**
     * 连接状态
     */
    private ConnectionStatus connectionStatus;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    @Data
    public static class ConnectionStatus {
        /**
         * 是否可连接
         */
        private Boolean connected;

        /**
         * 连接延迟(毫秒)
         */
        private Long latency;

        /**
         * 数据库版本
         */
        private String version;

        /**
         * 表数量
         */
        private Integer tableCount;

        /**
         * 最后测试时间
         */
        private LocalDateTime lastTestTime;

        /**
         * 错误信息
         */
        private String errorMessage;
    }
}
